<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>哈希函数</title>
</head>

<body>
  <script>
    // 设计哈希函数
    // 1.将字符串转成比较大的数字:hashCode
    // 2.将大的数字hashCode压缩到数组范围大小之内
    function hashFun(str, size) {
      // 1.定义hashCode变量
      let hashCode = 0

      // 2.霍纳算法,计算hashCode的值
      for (let i = 0; i < str.length; i++) {
        hashCode = 10 * hashCode + str.charCodeAt(i)
      }
      // 3.取余操作
      let index = hashCode % size
      console.log(index);
      return index
    }

    hashFun('aww', 7) // 5
    hashFun('ber', 7) // 4
    hashFun('ctfl', 7) // 1
    hashFun('ddf', 7) // 0
    hashFun('efg', 7) // 2
  </script>
</body>

</html>